package gui;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.sql.Date;
import java.util.ArrayList;
import java.util.Calendar;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.border.TitledBorder;
import javax.swing.JButton;

import negocio.Recado;
import negocio.RecadoControlador;
import negocio.Usuario;
import negocio.UsuarioControlador;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class RecadosCrear extends JFrame {

	private JPanel contentPane;
	private JTextField textField;
	JComboBox comboBox;
	ArrayList<Usuario> usuarios;
	Usuario usuario;
	Recados padreRecados;
	RecadoVer padreRecadoVer;
	
	
	public void llenarComboBox()
	{
		comboBox.removeAllItems();
		usuarios=UsuarioControlador.getAll();
		for(Usuario u: usuarios)
		{
			comboBox.addItem(u);
		}
		comboBox.insertItemAt("", comboBox.getItemCount());
		comboBox.setSelectedIndex(comboBox.getItemCount()-1);
	}

	
	public RecadosCrear(Usuario usuario, Recados padreRecados, RecadoVer padreRecadoVer) {
		this.padreRecadoVer=padreRecadoVer;
		this.padreRecados=padreRecados;
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		this.setTitle("Crear nuevo recado");
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		this.usuario=usuario;
		System.out.println("holaaaaa");
		
		JLabel lblReceptor = new JLabel("Receptor");
		lblReceptor.setBounds(10, 11, 54, 14);
		contentPane.add(lblReceptor);
		
		comboBox = new JComboBox();
		comboBox.setBounds(74, 8, 138, 20);
		contentPane.add(comboBox);
		
		JLabel lblAsunto = new JLabel("Asunto");
		lblAsunto.setBounds(10, 36, 46, 14);
		contentPane.add(lblAsunto);
		
		textField = new JTextField();
		textField.setBounds(74, 33, 350, 20);
		contentPane.add(textField);
		textField.setColumns(10);
		
		JPanel panel = new JPanel();
		panel.setBorder(new TitledBorder(null, "Cuerpo del mensaje", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel.setBounds(4, 60, 426, 159);
		contentPane.add(panel);
		panel.setLayout(null);
		
		JTextPane textPane = new JTextPane();
		textPane.setBounds(6, 16, 414, 136);
		panel.add(textPane);
		
		JButton btnCancelar = new JButton("Cancelar");
		btnCancelar.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				dispose();
			}
		});
		btnCancelar.setBounds(335, 228, 89, 23);
		contentPane.add(btnCancelar);
		
		JButton btnEnviar = new JButton("Enviar");
		btnEnviar.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				java.util.Date aux = new java.util.Date();
				Date fecha=new java.sql.Date(aux.getTime());
				Calendar cal = Calendar.getInstance();
				java.sql.Time hora = java.sql.Time.valueOf( 
			            cal.get(cal.HOUR_OF_DAY) + ":" + 
			            cal.get(cal.MINUTE) + ":" + 
			            cal.get(cal.SECOND) );
				Recado recado = new Recado(textField.getText(), textPane.getText(), fecha, "No leido", usuario, (Usuario)comboBox.getSelectedItem(),hora, false, false);
				RecadoControlador.guardar(recado);
				if(padreRecados!=null)
					padreRecados.llenarTabla();
				textField.setText("");
				textPane.setText("");
				comboBox.setSelectedIndex(comboBox.getItemCount()-1);
				dispose();
			}
		});
		btnEnviar.setBounds(236, 228, 89, 23);
		contentPane.add(btnEnviar);
		this.llenarComboBox();
		if(this.padreRecadoVer!=null)
		{
			comboBox.setSelectedIndex(usuarios.indexOf(padreRecadoVer.getRecado().getRemitente()));
			textField.setText("RESPUESTA A "+padreRecadoVer.getRecado().getAsunto());
			textPane.setText("\n\n\n\n\n\nRecado enviado por "+padreRecadoVer.getRecado().getRemitente().getNombre()
					+" "+padreRecadoVer.getRecado().getRemitente().getApellido()+" el dia "
					+padreRecadoVer.getRecado().getFechaRecado().toString()+"\nCuerpo del mensaje:\n"
					+padreRecadoVer.getRecado().getCuerpo());
		}
	}
}
